//package com.zhx.zaxiang.事务;
//
//public class TransactionUtils {
//
//    /**
//     * 事务后置处理，可以优化大事务提升连接池性能，尽量保证分布式事务一致性
//     * @param runnable
//     */
//    public static void doAfterTransaction(Runnable runnable) {
//        if (TransactionSynchronizationManager.isActualTransactionActive()) {
//            TransactionSynchronizationManager.registerSynchronization(new DoTransactionCompletion(runnable));
//        }
//    }
//}
//
///**
// * 事务完成后置回调函数定义
// */
//class DoTransactionCompletion implements TransactionSynchronization {
//
//    private Runnable runnable;
//
//    public DoTransactionCompletion(Runnable runnable) {
//        this.runnable = runnable;
//    }
//
//    @Override
//    public void afterCompletion(int status) {
//        if (status == TransactionSynchronization.STATUS_COMMITTED) {
//            this.runnable.run();
//        }
//    }
//}
//
//
//    /**
//     * demo
//     */
//    @Transactional
//    public void doTx() {
//        System.out.println("start tx");
//        TransactionUtils.doAfterTransaction(() -> {
//            System.out.println("after commit do..");
//        });
//        System.out.println("tx do end");
//    }
